home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 6 / FM Towns Free Software Collection 6.iso / t_os / cutf / asm / head6 < prev    next >
Text File  |  1993-07-08  |  6KB  |  393 lines

  1. ;
  2. .386p
  3.  
  4. ;G_BIOS equ    110h
  5. ;VRAM    equ    120h
  6.  
  7. MOUSE   equ     fword ptr fs:[40h]
  8. EGB    equ    fword ptr fs:[20h]
  9. MOUSE1  equ     fword ptr fs:[48h]
  10. SOUND   equ     fword ptr fs:[80h]
  11.  
  12.  
  13. RAM0       MACRO aaa
  14.        YOMU aaa,56
  15.        ENDM      
  16.  
  17. RAM1       MACRO aaa
  18.        YOMU aaa,60
  19.        ENDM      
  20.  
  21. RAM2       MACRO aaa
  22.        YOMU aaa,64
  23.        ENDM      
  24.  
  25. RAM3       MACRO aaa
  26.        YOMU aaa,68
  27.        ENDM    
  28.   
  29. AFRE      MACRO aaa
  30.       YOMU  aaa,72
  31.       ENDM
  32.  
  33. AKI     MACRO aaa
  34.      YOMU aaa,76
  35.      ENDM
  36.  
  37.  
  38. YOMU    MACRO  aaa,bbb
  39.        push esi
  40.        call look_me
  41.        mov esi,4[esi]
  42.        mov aaa,bbb[esi]
  43.        pop esi
  44.        ENDM
  45.  
  46. KAKU    MACRO  aaa,bbb
  47.         push esi
  48.         call look_me
  49.         mov esi,4[esi]
  50.         mov  aaa[esi],bbb
  51.         pop esi
  52.         ENDM
  53.  
  54. WD_WANT      MACRO
  55.       mov ah,4      ;ウインドウの要求
  56.       call look_me
  57.       call komei
  58.       ENDM
  59.  
  60. BOOK     MACRO
  61.      call look_me
  62.      mov esi,4[esi]
  63.      ENDM
  64.  
  65. BOX      MACRO  aaa,bbb
  66.      call aaa
  67.      mov cx,bbb
  68.      call putbox
  69.      ENDM
  70.  
  71.  
  72. GO_P     MACRO aaa
  73.      call aaa
  74.      jmp p_call
  75.      ENDM
  76.  
  77. WD_CLS     MACRO aaa
  78.      mov ah,100
  79.      mov al,10        ;[ah]=100::[cl]=[s_no]::[bx]=[wd_no]
  80.      mov cl,aaa
  81.      call komei1
  82.      ENDM
  83.  
  84. WD_MV    MACRO aaa
  85.      call look_me
  86.      mov ah,100
  87.      mov al,28
  88.      mov cx,aaa
  89.      call komei1
  90.      ENDM
  91.  
  92. MOZI     MACRO     aaa
  93.      call aaa
  94.      call putmozi
  95.      ENDM
  96.  
  97. MOZI1     MACRO aaa
  98.      call aaa
  99.      mov ah,100
  100.      mov al,17
  101.      call  komei1
  102.      ENDM
  103.  
  104. MOZI2     MACRO aaa
  105.      call aaa
  106.      mov ah,100
  107.      mov al,19
  108.      call  komei1
  109.      ENDM
  110.  
  111. WD_ERZ   MACRO aaa
  112.      mov ah,100
  113.      mov al,18        ;[ah]=10:[bx]=[wd_no] [cl]=[s_no]
  114.      mov cl,aaa        ;18 =  wind erase
  115.      call komei1
  116.      ENDM
  117.  
  118. WD_LEFT     MACRO
  119.      call look_me
  120.      mov edi,esi
  121.      mov ah,19      ;wind left  bx=wind no
  122.      call komei1
  123.      mov ah,16     ;relese of mouse
  124.      mov al,5
  125.      call komei1
  126.      ENDM
  127. SET_P     MACRO   aaa
  128.      call aaa
  129.      call p_set
  130.      ENDM 
  131.  
  132. CALL_P     MACRO aaa
  133.      call aaa
  134.      call p_call
  135.      ENDM
  136. MOU      MACRO aaa,bbb
  137.       call aaa
  138.       mov cx,bbb
  139.      mov ah,100
  140.      mov al,23
  141.      call komei1
  142.      ENDM
  143. GAMEN    MACRO aaa
  144.      mov bx,aaa
  145.      mov al,1
  146.          mov ah,25
  147.      call komei
  148.      ENDM
  149. DEKASA   MACRO aaa,bbb,ccc
  150.      mov bx,aaa
  151.      mov dx,bbb
  152.      mov cx,ccc
  153.      mov ah,25
  154.      mov al,3
  155.      call komei
  156.      ENDM
  157. M_P_CALL  MACRO
  158.      add edi,2
  159.      mov ah,20
  160.      call komei
  161.      mov ah,21
  162.      jmp komei
  163.      ENDM
  164. M_P_SET  MACRO
  165.      push edi
  166.      add edi,2
  167.      mov ah,20
  168.      call komei
  169.      pop edi
  170.      mov [edi],bx
  171.      ret
  172.      ENDM
  173.  
  174. M_LOAD   MACRO
  175.      mov ah,200     ; edi load banchi  
  176.      mov al,4       ; edx file name 
  177.      jmp komei
  178.      ENDM
  179.  
  180. M_SAVE   MACRO
  181.      mov ah,200        ; edx file name
  182.      mov al,5          ; edi data banchi
  183.      jmp komei         ; ecx byte su
  184.      ENDM
  185.  
  186. M_BYTESU  MACRO
  187.       mov ah,200           ;edx file name
  188.       mov al,6
  189.       jmp komei
  190.       ENDM
  191.  
  192. M_PUT_E  MACRO
  193.      call look_me
  194.      mov bx,10[esi]
  195.      mov 8[edi],bx
  196.      mov ah,100
  197.      mov al,20
  198.      jmp komei
  199.      ENDM
  200. M_MATUMS  MACRO
  201.       mov ah,16
  202.       mov al,2
  203.       jmp komei
  204.       ENDM
  205. M_KESUMS  MACRO
  206.       mov ah,16
  207.       mov al,5
  208.       jmp komei
  209.       ENDM
  210. M_KENMS   MACRO
  211.       mov ah,16
  212.       mov al,1
  213.       jmp komei
  214.       ENDM
  215.  
  216. M_ZZZ     MACRO
  217.      push edi
  218.      push esi
  219.      call look_me      ;mov edi,bf_egb
  220.      mov esi,4[esi]
  221.      mov edi,20[esi]
  222.      pop esi
  223.      call EGB
  224.      pop edi
  225.      ret
  226.      ENDM
  227. M_S_XOR  MACRO      
  228.       push ax
  229.       call p_xor
  230.       mov ax,[esp]
  231.       call b_xor_in
  232.       call p_xor
  233.       pop ax
  234.       ret
  235.       ENDM
  236.  
  237. M_P_XOR   MACRO
  238.      call look_me
  239.      add esi,10      ;     lea esi,wd_no
  240.      mov ax,[esi]
  241.      call b_xor_dt        ;lea edi,xor box data 
  242.      mov [edi],ax
  243.      mov ah,100
  244.      mov al,15
  245.      jmp komei
  246.      ENDM
  247.  
  248.  
  249. code     segment
  250.          assume cs:code,ds:code,gs:code,es:code,ss:code
  251.         org 0
  252. start proc
  253.  
  254.      lea eax,sz1
  255.      lea ecx,sz2
  256.      sub ecx,eax
  257.      inc ecx     
  258.      mov file_byte,ecx
  259.      lea eax,sz1
  260.      mov bf_file,eax
  261.      lea eax,ds_name
  262.      mov ban_fname,eax
  263.      call filecreate
  264.      call writefile
  265.      call fileclose
  266. owari:
  267.     mov ah,4ch
  268.     int 21h       
  269. bf_file        dd    ?
  270. file_byte    dd    ?
  271. ban_fname    dd    ?
  272. handle        dw    ?
  273. ck_handle    dw    ?
  274. fileopen:
  275.     mov ck_handle,0
  276.     mov ah,3dh
  277.     mov edx,ban_fname
  278.     mov al,2
  279.     int 21h
  280.     jc short cantopen
  281.     mov handle,ax
  282.     ret
  283. cantopen:
  284.     cmp ax,2
  285.     je short filecreate
  286. cantopen1:
  287.     mov ck_handle,1
  288.     ret
  289. filecreate:
  290.     mov ck_handle,0
  291.     mov ah,3ch
  292.     mov edx,ban_fname
  293.     mov ecx,0
  294.     int 21h
  295.     jc cantopen1
  296.     mov handle,ax
  297.     ret
  298. fileclose:
  299.     mov bx,handle
  300.     mov ah,3eh
  301.     int 21h
  302.     ret
  303. readfile:
  304.     mov ck_handle,0
  305.     mov bx,handle
  306.     mov edx,bf_file
  307.     mov ecx,file_byte
  308.     mov ah,3fh
  309.     int 21h
  310.     jc cantopen1
  311.     ret
  312. writefile:
  313.     mov ck_handle,0
  314.     mov bx,handle
  315.     mov edx,bf_file
  316.     mov ecx,file_byte
  317.     mov ah,40h
  318.     int 21h
  319.     jc cantopen1
  320.     ret
  321.  
  322.  
  323.  
  324.  
  325.  
  326. sz1     label        dword
  327.  
  328.  
  329.      cmp ah,0    ;ah=0 システムにリンクする
  330.      je  link
  331.      cmp ah,1
  332.      je re_paint
  333.      cmp ah,2        ;=2 ウインドの初期化
  334.      je paint_wd
  335.      cmp ah,4        ;マウスが押された
  336.          je mouse_in
  337.      cmp ah,6
  338.      je be_called
  339.      ret
  340.  
  341. link:
  342.      call look_me
  343.      mov [esi],ecx
  344.      mov 4[esi],edx
  345.      ret
  346.  
  347. putbox:
  348.      mov ah,2
  349.      mov al,0
  350.      call MOUSE
  351.      mov ah,100
  352.      mov al,14
  353.      call komei1
  354.      mov ah,2
  355.      mov al,1
  356.      call MOUSE
  357.      ret
  358.  
  359. putmozi:
  360.                 ;edi = mozi data head
  361.      mov ah,100
  362.      mov al,12
  363.  
  364. komei1:                    ;window 番号を必要とするコマンド bx=window no.
  365.      push esi
  366.      call look_me
  367.      mov bx,10[esi]
  368.      pop esi
  369.  
  370. komei:                    ;window 番号が必要でないコマンド
  371.      push esi
  372.      call look_me
  373.      mov esi,[esi]
  374.      xchg esi,[esp]
  375.      ret            ; jmp komei
  376.  
  377. sub_edi:
  378.      pop edi
  379.      ret
  380. sub_esi:
  381.      pop esi
  382.      ret    
  383.  
  384. sub_edx:
  385.      pop edx
  386.      ret
  387. sub_ecx:
  388.      pop ecx
  389.      ret
  390.  
  391.  
  392.  
  393.